Why this is the case I'm not sure, since the 2 and 3 seem to use the same kernel (but if you look there, there is a 3 specific device tree overlay). That makes this fairly simple, so here's what you can try -- it should work, but I won't make any promises since I don't have a Pi 3 to try it on.
First, get a new Raspbian image -- you might as well use the
lite version since it is a smaller download. Note it does not matter if the OS you are using is not Raspbian. We're only going to get a few little things in the boot partition. An exception would be if you are using NOOBs or BerryBoot. It may work with NOOBs, I'm sure it won't work without some adaption for BerryBoot.
Mount the image as described here. You only have to mount the first one. A couple of caveats:
Beware new Raspbian images have a different partition offset than in that example. Copy the methodology, do not simply cut'n'paste the numbers because it will not work.
While this may be easier using another computer running linux, presuming your SD card is big enough to hold that image, you could do it on a running pi.
Once you have the image mounted, backup your existing
boot partition. This is not hard since it is only 50-60 MB. None of it is really used after boot. You could also just copy out anything in particular you want to keep, particularly
config.txt if you have customized those.
Check to make sure you really do have the boot partition in the image file mounted and accessible. It will look pretty similar to your own. Once you are sure, delete everything in your existing boot partition. Now copy everything from the boot partition in the new image, which should contain two different kernels, one for the pi A/B/+, and one for the Pi 2/3 (
kernel7.img). Check to make sure there's a
bcm2710-rpi-3-b.dtb file there.
Reboot. If you have modified
config.txt, etc., don't replace them until you try rebooting first. This way if it works, then you replace config.txt with your own, you have a clue as to what is to blame.