Barzagli out for three months