The employer could sue you for breaching the contract by leaving before the notice period in the contract has expired.
However, the employer can only sue you if they have suffered loss as a result of the breach of contract.
On the one hand, they will save your wages but may need to hire a temp to cover for your absence. So the likely loss, if any, would be the difference between your wages and any temporary cover that is required.
Given that the difference is likely to be minimal it is unlikely the employer would sue as it is simply not worth it.
If they did, you would have the argument that the notice period is unreasonably long but the employer can say you knew that when you agreed the contract and you signed it. So on balance, you are very unlikely to be sued but if you were I think you would lose.
Any legal costs you would have to pay would be minimal because it would be a "small claim" in the court where minimal costs are awarded to the winner .
Your employer cannot refuse to give a reference but can refer to your leaving early. Whether this would put off a potential employer is another matter.
I hope this helps.
If there are any further points please reply and I will be happy to respond
I would request a shorter period and point out that the notice period is beyond the industry norm.
You do not have to confirm the 3 months as this is the contractual notice period and you have already given notice.