You should check out Canvas (
https://love2d.org/wiki/Canvas) and Spritebatch (
https://love2d.org/wiki/SpriteBatch). They work differently but both can be useful in this case.
Basically, the idea is that if some parts don't change, you can draw them once to some sort of buffer and then just draw that every frame. This can, in many cases, dramatically improve performance.
Spritebatches can only work with a single image source file, and you can add parts of it to the batch using Quads. The Spritebatch also doesn't need to know how large it's going to be, which is useful in some situations. It is also compatible with love-native-android which can be good to know.
Canvases (previously called Framebuffers) are fixed-size images basically, that you can draw to by passing a function similar to love.draw to using the Canvas:renderTo method. They allow you to draw basically anything.
Once you have created a Canvas or a Spritebatch, you can draw them by using love.graphics.draw inside love.draw like you'd normally do with an image or something.