If you buy a phone on contract, you pay more for it throughout the term of the contract.
It's how phone companies make extra money. £31 x 24 = 744 - I can't see that deal on o2? I can see £41 for 3gb which is a further £240...
If you're sticking with o2 - personally i find their internet rubbish which is key for me - you can get 4gb of data with giff gaff for £15 a month, tesco do 3gb with more minutes for £15 a month too. Depending on how much you use you could get a cheaper one still.
VM who piggy back from EE do £12 contracts for 2gb so it really depends on what you need.
Phone is £350, brand new unlocked.
£15 x 24 = £360 = £710 total, so although not greatly cheaper it's better.
A) You can upgrade when ever you want, so you can go out and get that lovely iphone 6s
B) Traveling is easier as you can use local sim cards as your phone is unlocked.
C) You can chop and change your contract to suit your needs.