Skyfield, at http://rhodesmill.org/skyfield (note the similarity to the location for PyEphem, not a coincidence) does exactly what you are asking for. You give it a TLE and you get coordinates in ICRF (or a variety of other options).
However, you won't get better than several kilometers from TLEs, they are simply not that accurate to begin with, nor is the SGP4 propagator that they are used with. In order to get "...a precision in the sub-meter range" you will have to find some carefully reconstructed (and now historical!) orbit data from the scientists working with the Grace spacecraft for that.
I've plotted the geocentric position, but here are the numerical values for Geocentric, J2000.0 relative to Solar System Barycenter referenced to the Earth's Equator, and to the Ecliptic planes:
[ -725.97623801 -4703.39226501 4823.26596748 ]
[ -1.37224552e+08 5.15960658e+07 2.23564481e+07]
[ -1.37224552e+08 5.62313492e+07 -1.20962433e+04]

TLE = """1 25544U 98067A 18051.96457625 .00002577 00000-0 46169-4 0 9990
2 25544 51.6416 238.1089 0003437 117.8478 357.3261 15.54125912100440"""
L1, L2 = TLE.splitlines()
import numpy as np
import matplotlib.pyplot as plt
from skyfield.api import Loader, EarthSatellite
load = Loader('~/Documents/fishing/SkyData')
data = load('de421.bsp')
ts = load.timescale()
planets = load('de421.bsp')
earth = planets['earth']
ts = load.timescale()
minutes = np.arange(0, 93, 0.5)
time = ts.utc(2018, 2, 27, 0, minutes)
ISS_Geo = EarthSatellite(L1, L2)
ISS_ICRF = earth + EarthSatellite(L1, L2)
ISS_Geo_pos = ISS_Geo.at(time).position.km
ISS_ICRF_pos = ISS_ICRF.at(time).position.km
ISS_ICRF_eclpos = ISS_ICRF.at(time).ecliptic_position().km
for thing in ISS_Geo_pos, ISS_ICRF_pos, ISS_ICRF_eclpos:
print thing[:, 0]
plt.figure()
for thing in ISS_Geo_pos:
plt.plot(thing)
plt.show()