I have a site which contains around 3000 static and dynamic pages. I think 2900 of the pages are based on 3 different php pages which create all the 2900 pages based on database content, and it has about 100 static pages.
How difficult would it be to integrate a CMS into the website so our Marketing department can make changes to the website easily without them having to mess around with code?
That will largely depend on how your site is currently structured. Since you say about 2900 pages are dynamic, you should be able to port these in an automated fashion (again : all will depend on your actual data, this can be very easy or very hard depending on how that data is structured). Suppose for instance you were to use Drupal (just picking one of the major players here). Then you could use the Migrate module to port your existing data over to Drupal.
A nice video on how to do this is at http://dc2009.drupalcon.org/session/migration-not-just-birds (you can also find it at archive.org for easy downloading btw – DrupalCon DC 2009 – Migration: Not Just for the Birds)