Float object is not iterable
Your error comes from this bit

verts = [[1, 2, 3]]

for i in range(0, 3):
    vert = [1, 2, 3]
    verts.extend(vert)

print(verts)
#[[1, 2, 3], 1, 2, 3, 1, 2, 3, 1, 2, 3]


you want to use verts.append(vert)

If you use append you will have 4 verts  and your faces has [0, 1, 2] are you trying to build a mesh with a triangular face and a hanging vert?