You can create unlimited side dish group and within that group, you can create unlimited side dishes with there prices and you can set the maximum selection option on the group level.
So if you have set the Max limit for a group to be 1 then your buyer can only select one side dish in that particular side dish group, once he has selected one side dish other side dishes will be disabled in that group. They can unselect there selection and then they can select other dishes
While they are selecting the side dish the product price will keep updating based on their selection and the price of the selected side dish, if the selected side dish is free then the price will not update in that case
See the video to understand it much better way: