You can use db2look to generate the DDL for tables and dependent objects. Then, create the tables only (names have to change) in the new tablespace and copy the data. To copy the data, you have a choice:
load from a cursor
export/load
db2move
Once the new tables have been populated, you can drop the old tablespace, rename new tables to their original names and then create their dependent objects (indexes, etc...)
If you're on v9, there is an easier way to accomplish this using the admin_copy_schema procedure. Here is an example:
$ db2 "call sysproc.admin_copy_schema ('TEST','TEST2','COPY',NULL,'TEST','TEST2','COPYSC HEMA2','COPYERROR')"
Value of output parameters
--------------------------
Parameter Name : ERRORTABSCHEMA
Parameter Value : COPYSCHEMA2
Parameter Name : ERRORTABNAME
Parameter Value : COPYERROR
Return Status = 0
Where:
test - the source schema and also source tablespace name
test2 - the target schema and also target tablespace name
This will copy the object from one tablespace into another within the same database. The schema will be changed.
Take a database backup before dropping anything... just in case.