I sincerly doubt the bedtime is too late. 8:00 or 8:30 is right on par for a 3 year old. I'd drop the nap before I moved the bed time later. Kids that are over-tired have a very hard time settling down and going to sleep!
Anyway, we have struggled wiht this before with my 4 year old. Consistancy is key. Set the expectation for him clearly - for example: you take a bath, read 3 books, 2 minutes for hugs/kisses/snuggles, and lights out. NO exceptions. Ever! Once they know you will read 1 more book or say 5 more minutes if they beg or cry for it, they will continue to push to get it everynight. Because they know its possible. The first week will be rough. He will cry and throw a fit everynight. But you will stay calm and stick to the rules. Keep repeating what he gets when he tries to deviate from the routine: bath, books, hugs, lights out. Once he finds that you mean business and that no amount of crying will change the routine, he will start to go along with it better. I also found that it was never a good idea for me to lay down with him. If I did, he would try to stay awake longer to hang out with me!