We had some issues a few months back with getting out 18 month old to bed. (We also have a 5 1/2 year old). So we decided on a nighttime routine and stuck to it. Now they both go to bed (at 7pm) with no problems and sleep until 6:30-7 am!
After dinner we give them a bath, then we watch 1/2 of the Goodnight Show on Sprout and they have their snack. Then we go brush teeth, do the potty routine, and get them in their jammies (if they aren't already from bath nights). We read a book and rub their backs for a few minutes (it makes them tired), give kisses, and they go to bed, in their own beds and we don't hear a peep from them until morning. When we were getting this routine set up, our daughter (the baby) cried a lot at first but I enforced the cry-it-out theory. It killed me to hear her cry but it lasted under 2 weeks. The first 2 nights she cried for an hour (killed me!!!) then the next few nights only 30-20 minutes, then the 2nd week she'd cry for 10-5 minutes, then none at all. They actually want to go to bed toward the end of the night and start to get drowsy at 6:30.
We really thought about letting our son, almost 6, stay up until 8pm since he's getting older, but our nighttime routine has been working so well, and he's been so tired at night, that we just can't imagine changing it yet. If we change his bedtime, we'll have to change the baby's since they do their routine together.
I don't know if sticking to my guns with CIO was the reason, or if we just got lucky, but ours are soo good about going to bed. *KNOCK ON WOOD!* They sleep for almost 12 hours a night, and the baby will take a 1 1/2 hour napduring the day! Our son used to too, up until he started kindergarten last fall.

Good luck, I don't know what will help a 3 year old get to sleep, but you can always try to change his routine and see what happens..