My 3 year old has never been a perfect sleeper, and we have been going through this cycle on and off for a year, ever since we moved her into a big girl bed. I've found that once I get up and help her back into bed, the situation escalates every night from there (i.e she wants to be rocked, she wants me to lie down with her, she wakes up more frequently). I've resorted to putting up a baby gate and letting her cry, after telling her beforehand that mama wouldn't be coming in until Mr. Sun woke up, then we could have a cuddle. Not an optimum choice, but for us, the only thing that worked to break the cycle. Now when it happens, I just have to tell her before bed the next night that the gate is going to be up, and that seems to reassure her and she sleeps through. The other thing I've resorted to in the past in sheer bribery - "if you stay in your bed all night without waking mama, you can have a jellybean in the morning." For a while, the reward was a good incentive, then she stopped caring about it. Other things that have helped:
Extra cuddle time before bed and making sure I leave her while she's still awake so she's not startled waking up alone in her own bed.
A nightlight.
Big snack before bed to keep her tummy full.
Leaving the blinds halfway open so she can tell if it's day or night.
A lamp and a cd player that she can turn on and off by herself if she needs extra comfort.
Taking a friend (stuffed toy) to bed.
That said, I still count myself lucky every single night she sleeps through!
Good luck!