what do I need to change in the formula so it sorts alphabetically
It should already sort alphabetically, and it does for me. That's what the last part of the code, starting at ws2.Sort.SortFields.Clear, is doing. Like I said, it works for me, can you double check, please?

Can those be automatically updated as well to include the added rows
Yes. See code, you can add the code below right before Application.ScreenUpdating = True near the end of the code.

For i = 4 To 19
Col = Split(ws2.Cells(LastRow + 6, i).Address, "$")(1)
ws2.Cells(LastRow + 6, i).Formula = "=SUM(" & Col & "2:" & Col & LastRow + 1 & ")"
Next


For i = 4 To 19
Col = Split(ws3.Cells(LastRow + 6, i).Address, "$")(1)
ws3.Cells(LastRow + 6, i).Formula = "=SUM(" & Col & "2:" & Col & LastRow + 1 & ")"
Next