if you want to clean up your Player's node tree, you can make each CollisionPolygon2D an instance/scene, organize them in a specific folder and even add a script to attach individual properties to it.
Then you load and unload them dynamically in your player scene.
In my case, I created several different CollisionShapes for my vehicle, each attached with their own script that contains different property values.
Example:
body00.tscn w/ script:
extends CollisionShape2D
var speed = 100
And
body01.tscn w/ script:
extends CollisionShape2D
var speed = 150
Then on my players scene, in it's script, I dynamically load which vehicle body I need, and load their individual properties (such as speed), since they all use the same movement code.
player.tscn w/ script:
extends KinematicBody2D
array = ["res://body00.tscn", "res://body01.tscn", etc...]
func load_body(id)
var pck = load(array[id])
var body = pck.instance()
speed = body.speed
add_child(body)
Something like that.