Yes, it is normal. Being a 2-3 year old can be incredibly frustrating. They want to touch everything they see, they want to do things they can't yet manage, they still get tired and have meltdowns, they get bossed around all the time. But there are ways to help your toddler be less frustrated, and a less frustrated child is a better team player.
Check out books and videos about the approach used by Dr. Harvey Karp; The Happiest Toddler on the Block. http://www.youtube.com/watch?v=fJ1428uYs2g&NR=1&a.... . He will demonstrate in this (and several related video clips) exactly how he "speaks" the toddler's language, gets on their wavelength, so they know he's on their team. This makes them happy to be on his team.
Here are a few useful guidelines for having a happier, more cooperative toddler:
1. Give him advance notice when you'll want him to be doing anything differently, especially when he's grooving on his activity/play. With my grandboy, we let him know at least a couple of times that a change is coming ("We're going to go to the store / have lunch / take a nap pretty soon." … and then a second alert one minute before making the change.)
2. Whatever the next activity is, make it sound as desirable as possible. Give some detail about the ride in the car, or a favorite food at lunch, or sweet snuggles before nap. Be positive and enthusiastic. And be calm. Desperation will show, and even though your son is too young to deliberately engage in a planned power struggle, he will quite naturally sense any cracks in your resolve. And this is where future power struggles truly can begin.
3. Get to know his most likely trouble-spots, and plan ahead. Be prepared with a distraction – for example, another toy he likes when you have to take your cell phone away from him. Laughter, introducing a new game, a few twirls and bounces, hugs or tickles can help break into his distraction with something he wants.
4. Avoid bribes, but let him work toward occasional future rewards. Don't try to buy his cooperation with "If you'll do X, we'll let you have Y." Instead, phrase it as if he gets to assist in advancing something good for himself: "Hey, as soon as you help me get X done, then we get to do Y." It sounds like a small distinction, but it's important.
5. Expect less cooperation if the child is tired, hungry, over-managed, overstimulated or bored. Toddlers have very little ability to choose other behaviors for themselves. We teach that to them gradually, and it works most effectively to do this by example, consistency, and noticing the positive.
Little kids are just following their most natural inclinations, and experimenting with every automatic strategy possible to get their natural needs met.