Resizing the entire scheme (using resizebox, scalebox or a similar approach) can make sure all molecules fit into the textwidth. However, if you have multiple schemes in your document, this approach will lead to inconsistent font sizes, bond length and line widths throughout the document. If you want to avoid that, you might be satisfied with an approach that is based on globally altering the bond length. By adding \setchemfig{atom sep=2.25em} (or any other length that suits your needs) to the preamble of the document, your scheme should easily fit into the textwidth of your document:

\documentclass[english]{scrartcl}
\usepackage{babel}
\usepackage{chemfig}
\usepackage{blindtext}
\setchemfig{atom sep=2.25em}
\begin{document}
\section{Structural formula}
\begin{center}
\schemestart
\chemname{
\chemfig{6(=-=(-OH)-(-(=[::60]O)-[::-60]OH)=-)}
}{Salicylic acid}
\chemname{
\chemfig{6(=-=(-(=[::60]O)-[::-60]OH)-(-O-::60-[::60]Me)=-)}
}{Acetylsalicylic acid}
\chemname{
\chemfig{(-[:-150]Me)(-[:330,,,1]OH)=[:90]O}
}{Acetic acid}
\chemname{
\chemfig{(-[:-150]Me)(=[:90]O)-[:330]O-:30}
}{Ethyl acetate}
\schemestop
\end{center}
\section{Experimental procedure}
\blindtext
\end{document}
Here is an alternativer version that attempts to solve the uneven vertical placement of the compound's names using a tabular or chemfig's \chenmameinit command:

\documentclass[english]{scrartcl}
\usepackage{babel}
\usepackage{chemfig}
\usepackage{blindtext}
\usepackage{booktabs}
\setchemfig{atom sep=2.25em}
\begin{document}
\section{Structural formula}
\begin{center}
\setlength{\tabcolsep}{0pt}
\schemestart
\begin{tabular}{\linewidth}{@{\extracolsep{\fill}}cccc}
\chemfig{6(=-=(-OH)-(-(=[::60]O)-[::-60]OH)=-)}
&\chemfig{6(=-=(-(=[::60]O)-[::-60]OH)-(-O-::60-[::60]Me)=-)}
&\chemfig{(-[:-150]Me)(-[:330,,,1]OH)=[:90]O}
&\chemfig{(-[:-150]Me)(=[:90]O)-[:330]O-:30} \\addlinespace
Salicylic acid
& Acetylsalicylic acid
& Acetic acid
& Ethyl acetate
\end{tabular}
\schemestop
\end{center}
\begin{center}
\chemnameinit{\chemfig{(-[:-150]Me)(-[:330,,,1]OH)=[:90]O}}
\schemestart
\chemname{
\chemfig{6(=-=(-OH)-(-(=[::60]O)-[::-60]OH)=-)}
}{Salicylic acid}
\chemname{
\chemfig{6(=-=(-(=[::60]O)-[::-60]OH)-(-O-::60-[::60]Me)=-)}
}{Acetylsalicylic acid}
\chemname{
\chemfig{(-[:-150]Me)(-[:330,,,1]OH)=[:90]O}
}{Acetic acid}
\chemname{
\chemfig{(-[:-150]Me)(=[:90]O)-[:330]O-:30}
}{Ethyl acetate}
\schemestop
\end{center}
\section{Experimental procedure}
\blindtext
\end{document}
\setchemfig{atom sep=2.25em}you should be able to fit all 4 molecules into the same line. – leandriis Jul 21 '21 at 17:30