How to duplicate a mesh within the Blender API
unfortunately, that function just returns {'FINISHED'}

solid = bpy.ops.mesh.primitive_ico_sphere_add(subdivisions=1)


thus:

import bpy
import mathutils
from mathutils import Vector

# the added object becomes the "active_object", get a reference to it.
bpy.ops.mesh.primitive_ico_sphere_add(subdivisions=1)
solid = bpy.context.active_object

# make a duplicate only of the mesh
ico_mesh_dup = solid.data.copy()

# make a new object, and reference the duplicated mesh.
solid_duplicate = bpy.data.objects.new('IcoSphere_duplicate', ico_mesh_dup)

# the object must be added to the scene
bpy.context.scene.objects.link(solid_duplicate)

# prove that the object is created by offsetting its location.
solid_duplicate.location = solid.location + Vector((2,0,0))


There's bmesh alternatives, but I think this will work for you.