If you use cat(3) to combine bands into an RGB matrix and display that, then the result is a TrueColor image and colormap does not apply to TrueColor data. If you want to be able to manipulate the three images by changing colormap without redrawing the image object, then you will need to use multiple graphic objects. However in such a case how the pixels interact to form display color would be a significant consideration.
Possibly what would work for you is if you took the cat(3) result and you used rgb2ind() on it, producing both an indexed image and a colormap. Then you could manipulate the active colormap. If you did this then the triple would be mapped into an index once and those locations would change together with the colormap changes. If you need the three layers to have their colormaps individually alterable, that is potentially possible but the visual combination would be dubious. Perhaps you are looking for transparency, AlphaData, and manipulating that to show or hide the layers?