I'm with O2 and they have nothing on 3
As soon as my O2 contract is done i'm going straight back to 3.
With 3 I got 23 meg download on 3G. Which is impressive. You can use your phone abroad in most countries at no extra cost. 0845 and 0800 is used from your normal minutes at no extra cost and I always had good signal and good internet.
O2 is awful, 99% of the time if I'm not in a 4G area I have absolutely no internet and when O2 contacted me a few months after I signed up with them to ask me what I thought of there network I told them there roaming internet is crap and she straight up agreed with me that they know about it and it is an issue but they plan to have a lot more 4G areas.. nearly 2 years on, nope..
So I deffo recommend 3