2 hours is quite long for his age (In my opinion, not necessarily, all toddlers are different)
You could try to do a slightly shorter nap, reduce it by 15 minutes and pull bedtime forward by 15 minutes. That way he won't be overtired when going to bed. Worth a shot I'd say!
I must admit, I remember when Alex turned 2 her sleep went a little haywire and so did many other BWers 2 year olds, but that was bedtime, when she finally dropped off she was outers for the night. They do have their little phases, but it's important to realise that this is when we start the bad habits.
Ensure that when he wakes for you and asks for a cuddle, I think that you should give him a cuddle and reassure him that you are there if he needs you but he must sleep now. Then leave the room, then do Walk in Walk out if necessary.
I hope that might help a little. Good luck.