Personally I find KiCads separation of what can be placed on layers quite annoying and useless.
This is one of the best examples of a reason to be able to place footprints on an inner layer.
Another example is single layer power supply, where the tracks on the bottom are sometimes copied to the silk screen on the top.
Yet another example is a rigid / flex PCB, where the flex is on the inner layers and may have footprints for connectors.
In KiCad V5.0.2 there was a function to move or copy whole layers to other layers (copper could only be moved/copied to copper, and non-copper to non-copper).
This window seems to have dissapeared or simplified in KiCad V5.1.
There is a:
Pcbnew / Edit / Swap layers
but this does not take footprints from an extnal layer to an internal layer.
One option would be to draw them as tracks, and then lock the tracks.
The design is pretty simple, you can draw a few tracks and then make an array of them, or make use of the grid.
For multiple of these buttons, first design one, and then use the array function to multiply them. Either directly in place or next to the board and move them afterwards.
It’s probably a good idea to adust the settings of the interactive router when you’re doing this, because with the default settings it is pretty agressive in wanting to improve your hand crafted results.
Another option is to import your design as graphics on a coper layer.
At the moment KiCad has no design rule checking for graphics on copper so you have to be carefull with this.