I'm familiar with this struggle and it's very annoying when you have somewhere to be! Plus it's just a horrible way to start the day.
1. Make a game out of it. "I bet I can get dressed faster than you can" or "first person to finish getting ready get's an extra book at bedtime" or whatever strikes your kids fancy. This also worked great for being quiet. The "Who can be quiet as a mouse?" game created many much needed quiet moments.
2. I agree with Page the poster below about just sending her off the way she is. My sister is a preschool teacher (specifically 3 yr old) and she tells me she will care that she's the only one in her pajamas (don't know about the hair).
3. I've found that if I get the "getting ready" done right out of bed everything goes much more smoothly. It's like they have less fight in them right out of bed. Plus, I like the idea of a no dawdle morning so get ready then play/eat/whatever.
If you haven't read it, check "Becoming the Parent You Want to Be" out from the library. It's filled with information that helps you remember 1. this is totally normal behavior and 2. helps you deal with it in a rational manner. I've found whenever I start getting "annoyed" with a particular behavior it really helps me keep things in perspective and everything just improves! Anyway, it's great.
I almost forgot. Dr. Karp rewards kids with check marks on their hands. My son loves it. I actually use a little tiny heart stamp. At night you can go over the checks and why she got them. You can then reaffirm that when she gets ready quickly it makes you very happy and PROUD. However much praise you want to give her is great. Children are natural people pleasers so seeing you are happy will encourage that behavior.