Yes you can, and even execute code from it on PIC18 and PIC17 microcontrollers up to 2MB if external program memory can be added but most variants lac the external program memory interface. For example the pic18f8x8x you can even implement a memory bank system to address much more than 2MB like PCs didn'tdid in the early times of the x86 called XMEM extended memory.