How can I list all the tablespaces without getting into each instance?
I don't have anywhere to test this at the moment, but either of these might work.

If you have su privileges to all instance owner users:
db2ilist | while read inst; do su - $inst db2pd -alldbs -tablespaces; done


If you have sufficient privileges on all instances yourself:
db2ilist | while read inst; do env DB2INSTANCE=$inst db2pd -alldbs -tablespaces; done