As you observe the coefficients aren’t part of the training, and for good reason: if your losses are all positive, 0 coefficients would give you zero L, and you could even move them to negative and then you would improve L if the L1 … increase.
This is why, indeed, the coefficients are not and cannot be part of the optimization of L itself and so are what is termed a hyper-parameter (as opposed to normal, trainable parameters), similar to learning rate etc.
Now what is commonly done is to take some validation metric (e.g. accuracy for classification) and then try to find c1, … that lead to good results in that metric. Various approaches exist from manual search to randomly varying them to “learning to learn” approaches to Bayesian optimization schemes.