I think @stefan's answer is the best solution to the problem, however, if you don't have the "see" package installed (the function warns you if this is the case), plot_model()
generates a list of plots instead of a single figure. A potential solution for this scenario is to use the patchwork library, which accepts a list of plots as input, e.g.
library(sjPlot)
library(ggplot2)
library(patchwork)
colnames(iris) <- c("y", "a", "b", "c", "d")
m0 <- lm(y ~ a * b * c * d, data = iris)
list_of_plots <- plot_model(m0, type = "pred", terms = c("a", "b", "c", "d"))
#> Warning: Package `see` needed to plot multiple panels in one integrated figure.
#> Please install it by typing `install.packages("see", dependencies =
#> TRUE)` into the console.
# You can edit the plots to suit, e.g. remove titles from plots 2 and 3
list_of_plots[[2]] <- list_of_plots[[2]] + labs(title = "")
list_of_plots[[3]] <- list_of_plots[[3]] + labs(title = "")
wrap_plots(list_of_plots, ncol = 1, guides = "collect")

Created on 2023-04-20 with reprex v2.0.2