There are several reasons why splitting in your case can be problematic, as mentioned in the comments.
So another approach would be not splitting the polygon, but drawing lines in the middle of the parts that represents the sections you want to have as separate polygons. Buffer the lines and create the intersection with the polygon to get separate polygons.
Draw the lines as a separate line layer. Than use Geometry by expression with this expression:
intersection ( overlay_nearest ('name_of_your_polygon_layer',$geometry)[0], -- replace with the name of your polygon layer buffer ($geometry,1,cap:='flat') -- adapt the buffer distance of 1 to a value apt for your data )
Make the adaptations mentioned in the comments; you might use Geometry Generator first to see the result before running Geometry by expression, see here. Also play around with the optional arguments of buffer() function like cap, join and miter_limit, see documentation.
Left: Initial polygon in yellow, lines in different colors (each color represents a separate feature); middle: buffer around the lines; right: intersection of the initial polygon with the buffers: 
Variant: result without the cap argument: no gaps, but larger overlaps where lines meet. Depending on what you need, you could get rid of the overlaps in a next step, see below 
Convert the result of the last variant (without cap) to lines with Polygons to lines, then use these lines with Spit with lines on the initial polygon to get clean, separate features for each road. The intersections will be separate, but not overlapping features that you can let like this or merge with neighboring streets:
