First.... a three year old isn't really a toddler. She's a preschooler. Preschoolers are independent and have the ability to make good choices. They LOVE their independence They love their choices. They are very oppositional when they feel like you just made a choice for them. Try letting her choose between two shirts. Even if you really want her to wear the striped shirt, give her a choice anyway. If it's really important, or non negotiable, let her know. "Today, you don't get to choose, but after today, you can choose again, and you can choose your jammies tonight".
At three, she's developing logical reasoning skills, she's having conversations, she's remembering a conversation you had four months ago, and reminding you that "you said..." They remember what you promised, and they hold you to it.
Threes can dress themselves, (wrong, but they did it themselves) they can pour water, they can lock doors, they can do most things reasonably well, and they WANT to do it. So, when you tell a three yr old he or she can't do something, it's the only thing they want to do. If you tell them to do something, it's the only thing they DON'T want to do. But, if you include them in on a decision, they are usually fine with it. (again, within reason, you can't expect the world)
Walk through target at any given time, and the kid you see with the most insane, mismatched outfit is probably a three year old. They are proud of that outfit. They chose it, and dressed themselves in it. It is like giving a 16 yr old the keys to the car. It's new and awesome. The magic wears off by kindergarten though.