I guess the essentials are already said, but you can try this
That's my painting. Unfortunately I'm a little less skilled than mr. Stalenhag, but at least the colors resemble what he has used. I work with high zoom to make everything well visible. I have an yellowish background and a few grey strokes in a separate layer.
One can imprint a texture onto a painting. Photoshop's filter Texturizer has been already suggested. You can place a non-repeating canvas texture with it if you have a full size high resolution high contrast BW photo of a piece of canvas. Texturizer has option to load your own texture image for it. A smalled piece is tiled automatically. My opinion is that the tiling is done quite well in PS Texturizer.
Internally Texturizer applies embossing (Filter > Stylize > Emboss) to the texture image, blends the texture with the painting with mode Hard Light and finally tries to fix the possible contrast loss. We can try it externally. Embossing is not used because my texture already has some apparent depth due the used sideways light, I have this texture photo:
With blending mode hard light the same 3D-like shading appears on the painting.
The texture can be made less offensive by reducing its opacity:
This doesn't make it painting, it's like printed on non-uniform material. The yellow background could be acceptable as is if the color layer is considered to be thin. But the grey strokes are brushed paint, they should have some brush texture which is directed along the strokes. The canvas texture should be weaker. Here the strokes are with no texture:
I made this brush texture:
It's a copy of the strokes + heavy big grain noise, the smudge tool was dragged along the strokes and Filter > Stylize > Emboss is applied to generate some apparent thickness.
With blending mode hard light it is like thick brushed paint:
It's still not plausible because the canvas should cause something if the painted strokes are reasonable thin. That something should distort geometry, it's not enough to place the strokes under the texture. This has only the shading caused by the texture:
I made this high contrast texture version to use it as a displacement map (=Filter > Distort > Displace) for a merged version of the brush strokes:
This is the final result:
The displacement appears as torn color borders.