Our CAN baud rate is set 125 kbps. However, I was trying to use internal system clock on PSOC4 for the CAN communication, but the SYSCLK clock accuracy is set for +/- 2 % and the CAN block requires +/- 1.58% or better. Does anyone know how to achieve that without adding external crystal?
You cannot increase the clock precision without a crystal. You may use an external clock fed into P0_6 or the 32kHz Watch Crystal Oscillator (WCO). Because the specs of the oscillator are guaranteed over the complete temperature range your CAN might work flawlessly, but to be on the safe side I would consider the WCO version.