No, but you can consolidate related tags by creating User-Defined types. When you instantiate a UDT object, the usual memory overhead (IIRC, 80 bytes per tag) is reduced to one 80-byte penalty per UDT object created. If you have many type-homogeneous tags (DINTs everywhere, BOOLs galore, UDTs willy-nilly, and so on) create arrays of them if it makes sense within the scope of your project, for the same reason.
If you are running v24 of Studio 5K or later, you can create public parameters (tags that can be accessed from other programs directly) defeating the need to write program-scoped tags to a controller-scoped duplicate of the tag for other programs to consume.
If you've exhausted your options, a higher-capacity processor is what remains.