I've worked for nearly 20 years and my resume is 3 pages.

As someone who's recruited people - believe me, short is good.

Think of your resume as a list of achievements - you don't need to list ALL your duties, just the ones that are pertinent and you don't have to write the same ones over and over again. For instance, I work in communications so in virtually every job, I've written newsletters. But I don't need to mention that for every job.